Skip to main content

一个简单的基于控件的雷电模拟器脚本

· 3 min read
老陈

下面我们来演示一个简单的脚本, 方便新手入门, 最后的脚本源码请到下载中心的脚本案例中去下载

脚本要做的是在主页打开浏览器, 并搜索相应内容

首先, 我们点击控件载入, 分析出浏览器图标在什么地方, 在"系统应用"里

很好办, 我们发现有控件ID com.android.launcher3:id/preview_background

其它也是一样, 我们都能找到唯一的匹配参数, 如果一个参数不够, 那就多个

如果多个控件参数还是无法匹配, 我们可以匹配控件大小以及控件位置, 以及结合父子关系去匹配

然后我们输入搜索文本如何泡妞

我们要启用一下YY输入法, 如果我们要注入中文到编辑框里, 一般需要点击一下编辑框, 以进入输入状态

这里界面没有显示搜索按钮, 我们可以使用key_confim()注入搜索确认键到系统模拟器按下键盘的搜索键进行搜索

在编写代码的过程中, 如果我们只需要测试某行点击代码, 注释即可, 在pycharm中默认注释代码的快捷键是ctrl + / 如下所示, 我们只需要执行输入本文这句代码, 那我们注释其它代码即可.

最终的核心代码如下:

from yydsplus import *


def wait_activity(name: str):
sleep(1)
while True:
if device_foreground_activity() == name:
return


def main():
fg = device_foreground_activity()
# 我们开启引擎的日志调试, 开启这个会打印更多的日志
engine_set_debug(True)

# 确保返回到首页
key_home()
key_home()
# 打印当前活动界面名
util.print_with_time(">> 当前界面:" + fg)

# ui_match 返回一个控件数组, 所以我们直接选第一个进行点击
ui_match(resource_id="com.android.launcher3:id/preview_background")[0].click_node()
sleep(3)
ui_match(text="浏览器")[0].click_node()
wait_activity("com.android.browser.BrowserActivity")

sleep(3)
ui_match(resource_id="com.android.browser:id/url")[0].click_node()

# 为了提高我们脚本的稳定性, 我们一般要加点延时
sleep(4)

# 输入文本进行搜索
x_input_clear()
sleep(1)
x_input_text("如何泡妞")

# 确认搜索
key_confirm()

运行以上工程, 我们成功进入了界面